/*
 * Copyright  1990-2009 Sun Microsystems, Inc. All Rights Reserved. 
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER 
 *  
 * This program is free software; you can redistribute it and/or 
 * modify it under the terms of the GNU General Public License version 
 * 2 only, as published by the Free Software Foundation. 
 *  
 * This program is distributed in the hope that it will be useful, but 
 * WITHOUT ANY WARRANTY; without even the implied warranty of 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 
 * General Public License version 2 for more details (a copy is 
 * included at /legal/license.txt). 
 *  
 * You should have received a copy of the GNU General Public License 
 * version 2 along with this work; if not, write to the Free Software 
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 
 * 02110-1301 USA 
 *  
 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa 
 * Clara, CA 95054 or visit www.sun.com if you need additional 
 * information or have any questions.
 */

package com.sun.ukit.dom;

import org.w3c.dom.Node;
import org.w3c.dom.DOMException;

import org.w3c.dom.views.AbstractView;

import org.w3c.dom.events.EventTarget;
import org.w3c.dom.events.TextEvent;
import org.w3c.dom.events.EventException;

/**
 * DOM text event implementation.
 *
 * @see org.w3c.dom.events.TextEvent
 */

/* pkg */ final class TxtEvtImp
	extends XUIEvt
	implements TextEvent
{
	/** Data */
	private String data;

	/**
	 * <code>data</code> holds the value of the characters generated by the 
	 * character device. This may be a single Unicode character or a 
	 * non-empty sequence of Unicode characters [Unicode]. Characters should be 
	 * normalized as defined by the Unicode normalization form NFC, defined in 
	 * [<a href='http://www.unicode.org/reports/tr15/'>UAX #15</a>]. This 
	 * attribute cannot be null or contain the empty string. 
	 */
	public String getData()
	{
		return data;
	}

	/**
	 *  The <code>initTextEvent</code> method is used to initialize the value 
	 * of a <code>TextEvent</code> object and has the same behavior as 
	 * <code>UIEvent.initUIEvent()</code>. The value of 
	 * <code>UIEvent.detail</code> remains undefined. 
	 * @param typeArg  Refer to the <code>UIEvent.initUIEvent()</code> method 
	 *   for a description of this parameter. 
	 * @param canBubbleArg  Refer to the <code>UIEvent.initUIEvent()</code> 
	 *   method for a description of this parameter. 
	 * @param cancelableArg  Refer to the <code>UIEvent.initUIEvent()</code> 
	 *   method for a description of this parameter. 
	 * @param viewArg  Refer to the <code>UIEvent.initUIEvent()</code> method 
	 *   for a description of this parameter. 
	 * @param dataArg  Specifies <code>TextEvent.data</code>. 
	 */
	public void initTextEvent(
		String typeArg, boolean canBubbleArg, boolean cancelableArg, 
		AbstractView viewArg, String dataArg)
	{
		initTextEventNS(null, typeArg, canBubbleArg, cancelableArg,
			viewArg, dataArg);
	}

	/**
	 *  The <code>initTextEventNS</code> method is used to initialize the 
	 * value of a <code>TextEvent</code> object and has the same behavior as 
	 * <code>UIEvent.initUIEventNS()</code>. The value of 
	 * <code>UIEvent.detail</code> remains undefined. 
	 * @param namespaceURIArg  Refer to the <code>UIEvent.initUIEventNS()</code> 
	 *   method for a description of this parameter. 
	 * @param typeArg  Refer to the <code>UIEvent.initUIEventNS()</code> method 
	 *   for a description of this parameter. 
	 * @param canBubbleArg  Refer to the <code>UIEvent.initUIEventNS()</code> 
	 *   method for a description of this parameter. 
	 * @param cancelableArg  Refer to the <code>UIEvent.initUIEventNS()</code>
	 *    method for a description of this parameter. 
	 * @param viewArg  Refer to the <code>UIEvent.initUIEventNS()</code> 
	 *   method for a description of this parameter. 
	 * @param dataArg  Refer to the <code>TextEvent.initTextEvent()</code> 
	 *   method for a description of this parameter. 
	 */
	public void initTextEventNS(String namespaceURIArg, 
		String typeArg, boolean canBubbleArg, boolean cancelableArg, 
		AbstractView viewArg, String dataArg)
	{
		if (dataArg == null)
			throw new NullPointerException();
		
		initUIEventNS(namespaceURIArg, typeArg, canBubbleArg, cancelableArg,
			viewArg, 0);

		data = dataArg;
	}
}
